#第一问
#迭代器：迭代器可以用来表示一个数据流，提供了数据的惰性返回功能
#生成器：可以简单将其理解为一种特殊的迭代器，在迭代器惰性返回数据的基础上，提供了额外的功能
#两者的区别：前者侧重于提供数据的惰性返回功能。后者侧重于指令的惰性返回功能。

#第四问, 用协程实现一个计算平均数的函数
def averager():
    total = 0
    num = 0
    while True:
        try:
            value = yield total / num
        except ZeroDivisionError:
            value = yield 0
        total += value
        num += 1
avg = averager()
print(next(avg))
print(avg.send(1))
print(avg.send(2))

#第五问，编写一个asyncio异步程序
import time,asyncio

async def hello():
    await asyncio.sleep(1)
    print(f"Hello World:{time.time()}")

def run():
    for i in range(5):
        loop.run_until_complete(hello())

loop = asyncio.get_event_loop()
if __name__ =='__main__':
    run()




